package com.stefanini.pe.bbva.mbl.in.dao;

import java.math.BigDecimal;
import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

import com.stefanini.pe.bbva.mbl.carga.in.to.Usuarios;
import com.stefanini.pe.bbva.mbl.in.dao.iface.UsuariosDAO;

public class UsuariosDAOImpl extends SqlMapClientDaoSupport implements UsuariosDAO {

    public UsuariosDAOImpl() {
        super();
    }

    public int deleteByPrimaryKey(BigDecimal idUser) {
        Usuarios key = new Usuarios();
        
        logger.info("Inicio");
        
        key.setIdUser(idUser);
        int rows = getSqlMapClientTemplate().delete("DIMUSUARIOS.ibatorgenerated_deleteByPrimaryKey", key);
        
        logger.info("Fin");
        
        return rows;
    }

    public void insert(Usuarios record) {
    	logger.info("Inicio");
    	
        getSqlMapClientTemplate().insert("DIMUSUARIOS.ibatorgenerated_insert", record);
        
        logger.info("Fin");
    }

    public void insertSelective(Usuarios record) {
    	logger.info("Inicio");
    	
        getSqlMapClientTemplate().insert("DIMUSUARIOS.ibatorgenerated_insertSelective", record);
        
        logger.info("Fin");
    }

    public Usuarios selectByPrimaryKey(BigDecimal idUser) {
        Usuarios key = new Usuarios();
        
        logger.info("Inicio");
        
        key.setIdUser(idUser);
        Usuarios record = (Usuarios) getSqlMapClientTemplate().queryForObject("DIMUSUARIOS.ibatorgenerated_selectByPrimaryKey", key);
        
        logger.info("Fin");
        
        return record;
    }
    
    public List selectAll() {
        List record = null;
        
        logger.info("Inicio");
        
        record = (List) getSqlMapClientTemplate().queryForList("DIMUSUARIOS.ibatorgenerated_selectAll", null);
        
        logger.info("Fin");
        
        return record;
    }
    
    public List selectByCriteria(Usuarios usuarios) {
    	List record = null;
    	
    	logger.info("Inicio");
    	
    	record = (List) getSqlMapClientTemplate().queryForList("DIMUSUARIOS.ibatorgenerated_selectByCriteria", usuarios);
    	
    	logger.info("Fin");
    	
        return record;
    }

    public int updateByPrimaryKeySelective(Usuarios record) {
        int rows = 0;
        
        logger.info("Inicio");
        
        rows = getSqlMapClientTemplate().update("DIMUSUARIOS.ibatorgenerated_updateByPrimaryKeySelective", record);
        
        logger.info("Fin");
        
        return rows;
    }

    public int updateByPrimaryKey(Usuarios record) {
        int rows = 0;
        
        logger.info("Inicio");
        
        rows = getSqlMapClientTemplate().update("DIMUSUARIOS.ibatorgenerated_updateByPrimaryKey", record);
        
        logger.info("Fin");
        
        return rows;
    }
    
    public int selectSequence() {
    	int resul = 0;
    	
    	logger.info("Inicio");
    	
    	resul = Integer.parseInt((String)getSqlMapClientTemplate().queryForObject("DIMUSUARIOS.generated_llavePrimaria",""));
    	
    	logger.info("Fin");
    	
		return resul;
	}
    
    public List selectByCriteriaAll(Usuarios usuarios) {
    	List record = null;
    	
    	logger.info("Inicio");
    	
    	record = (List) getSqlMapClientTemplate().queryForList("DIMUSUARIOS.ibatorgenerated_selectByCriteriaAll", usuarios);
    	
    	logger.info("Fin");
    	
        return record;
    }
    
    public int updateClaveByUsusario(Usuarios record) {
    	int rows = 0;
        
        logger.info("Inicio");
        
        rows = getSqlMapClientTemplate().update("DIMUSUARIOS.updateClaveByUsusario", record);
        
        logger.info("Fin");
        
        return rows;
    }
    
}